package com.shiguiwu.springmybatis.spring.transaction.propagation;

import com.shiguiwu.springmybatis.spring.transaction.TransactionTests;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @description:
 * @author: stone
 * @date: Created by 2021/6/15 12:49
 * @version: 1.0.0
 * @pakeage: com.shiguiwu.springmybatis.spring.transaction.propagation
 */
public class RequiredNewTests {

    public static void main(String[] args) throws Exception {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TransactionTests.class);

        /*
         * 通过这两个方法我们证明了在外围方法未开启事务的情况下 Propagation.REQUIRES 修饰的内部
         *
         */
        TxService3 txService3 = context.getBean(TxService3.class);
//        txService3.notransaction_exception_requiresNew_requiresNew();

//        txService3.notransaction_exception_requiresNew_requiresNew2();

        //外围开启事务
        /*
         * 在外围方法开启事务的情况下 Propagation.REQUIRES_NEW 修饰的内部方法依然会单独开启独立事
         * 务，且与外部方法事务也独立，内部方法之间、内部方法和外部方法事务均相互独立，互不干扰。
         */
//        txService3.transaction_exception_requiresNew_requiresNew();








    }
}
